Cellular or cell phones, sometimes called mobile phones, are commonly used in mobile communication systems. Most, if not all, cell phones are software-based devices, meaning that they have one or more internal computers, i.e., processors, and software that directs the operation of such processor(s). This approach presents several possible advantages to the cell phone manufacturer. First, the development time and life cycle costs may be less than would be required if cell phones were not software-based. Second, the operating characteristics are in large part a function of the software stored in the phone. This makes it possible for a manufacturer to produce various models of cell phones by simply developing different versions of software, one for each model of phone.
One problem however, is that users sometime attempt to “reprogram” a cell phone by copying the software from another phone, without permission or authorization from the manufacturer. This occurs in two different contexts. The first context is where a user seeks to upgrade a phone without paying for the upgrade. For example, in some instances, a low end phone can be converted into a high end phone by simply copying the software from the high end phone into the low end phone. This reduces the potential for high-end phone sales and thereby hurts the profits of the phone manufacturer, as well as the profits of the high-end software supplier. The second context is where a user seeks to use a stolen phone. This is because each phone is assigned a unique code, commonly referred to as an IMEI (International Mobile Equipment Identity) code, which is used to help prevent the use of stolen phones. The IMEI code is typically embedded in the phone software and transmitted to the communication network when a user initiates a call. The network compares the transmitted IMEI code to a database to determine whether the phone has been reported as stolen. If the phone has been reported stolen, the network does not allow it to make calls over the network. But a problem arises because the IMEI check is rendered ineffective if the stolen phone is reprogrammed with software (including the IMEI code) copied from a legitimate phone (i.e., a phone that has not been stolen). Thereafter, the stolen phone transmits a seemingly legitimate IMEI code and is allowed to make calls over the network.
Thus methods are sought to help prevent a phone from operating with software copied from (and only authorized for use by) another phone.
Several methods currently exist. One method requires the user to enter a PIN (Personal Identification Number) code or license number when the telephone is switched on. However, this method does not prevent the stolen or initially low-end phone from being able to operate with the copied software; rather, it simply requires that the user enter the PIN code or license number of the authorized or high-end phone.
A second method provides each phone with a hardware identifier. The software in the phone reads the hardware identifier, compares it to a reference identifier, stored in the software, and disables the phone if the hardware identifier does not match the reference identifier. However, this method can be defeated relatively easily. A debugger and/or an emulator can be used to identify the portion of the software that carries out the check and disable operations. Those portions of the software can then be replaced or altered.
Accordingly, other methods to help prevent electronic devices such as phones from operating with software copied from (and only authorized for use by) another device, are sought.